//
//  WBHomeViewController.swift
//  WJ微博
//
//  Created by 王杰 on 2017/1/16.
//  Copyright © 2017年 WangJie. All rights reserved.
//

import UIKit

// 私有全局常量,私有避免在别的地方被访问
private let cellID = "HomeCell"

class WBHomeViewController: WBBaseViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()

        // 注册cell
        tableView?.register(UITableViewCell.self, forCellReuseIdentifier: cellID)
    }
    
    /// 显示好友
    func showFriends() {
        print(#function)   // 打印: showFriends()
        
        let testVC = WBTestViewController()
        
        // 隐藏底部tabBar
        testVC.hidesBottomBarWhenPushed = true
        
        navigationController?.pushViewController(testVC, animated: true)
    }
    
    override func loadData() {
        
        // 开始刷新
        self.refeshControl?.beginRefreshing()
        print("开始加载数据")
        
        // 模拟‘延时’ 加载数据   oc 中 dispatch_after
        // 队列调度任务
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2, execute: {
            
            for i in 0..<15 {
//                // 每次都在数组第0个位置插入数据，这样数组就是一个倒叙的
//                self.arrayData.insert(i, at: 0)
                // 区分开是上拉刷新还是下拉刷新
                if self.isPullUp {  // 上拉刷新
                
                    self.arrayData.append("上拉刷新 \(i)")
                }else {  // 下拉刷新
                    // 每次都在数组第0个位置插入数据，这样数组就是一个倒叙的
                    self.arrayData.insert("下拉😆\(i)", at: 0)
                }
            }
            
            // 结束刷新
            self.refeshControl?.endRefreshing()
            // 恢复上拉刷新标记
            self.isPullUp = false
            
            
            print("刷新表格")
            // 刷新tableView
            self.tableView?.reloadData()
        })
    }
    
    // 子类类实现父类的方法
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return arrayData.count
    }
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath)
        
        cell.textLabel?.text = "\(arrayData[indexPath.row])"
        cell.textLabel?.textColor = #colorLiteral(red: 0.1215686277, green: 0.01176470611, blue: 0.4235294163, alpha: 1)
        return cell
    }
}

extension WBHomeViewController {

    // 重写
    override func setupTableView() {
        super.setupTableView()
        // 这种写法按钮按下没有高亮效果
        // 设置左导航按钮
        //        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "好友", style: .plain, target: self, action: #selector(showFriends))
        
        // 采用下面方法即可解决
        //        let btn : UIButton = UIButton.cz_textButton("好友", fontSize: 16.0, normalColor: UIColor.black, highlightedColor: UIColor.orange)
        //        btn.addTarget(self, action: #selector(showFriends), for: .touchUpInside)
        //        navigationItem.leftBarButtonItem = UIBarButtonItem(customView: btn)
        // 简化版，扩展
        //        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "好友", target: self, action: #selector(showFriends))
        // 在WBNavigationController 隐藏了系统默认的navigationBar   在WBBaseViewController 懒加载自定义导航条navigationBar和导航条条目navItem，以后用到navigationItem 的位置一律换成navItem
        navItem.leftBarButtonItem = UIBarButtonItem(title: "好友", target: self, action: #selector(showFriends))
        // UIBarButtonItem(title: "好友", target: self, action: #selector(showFriends))
        navItem.leftBarButtonItem = UIBarButtonItem(title: "好友", target: self, action: #selector(showFriends))
    }
}
